%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introduzione}

%\frame{\frametitle{Outline}
%\tableofcontents
%}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% MOSTRARE VIDEO AL PROF

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\frame{\frametitle{Introduzione}



\begin{block}{Definizione}
\begin{itemize}
 \item Tracking video è quel processo che, dato un flusso video, localizza e segue uno o più oggetti che si muovono nella scena.
 \item \`E quindi possibile ricavare informazioni su:
			\begin{enumerate}
			\item posizione passata
			\item stato attuale
			\item \textbf{previsione} dello stato futuro
			\end{enumerate}


\end{itemize}
\end{block}



L' ambito di utilizzo è da collocarsi in settori come:
\begin{itemize}
\item Industria per la localizzazione di oggetti in movimento
% \begin{footnotesize}(es. Radar )                                                                          \end{footnotesize}
\item Sistemi di video sorveglianza intelligente
\item Sistemi software per editing dei video
\end{itemize}



}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\frame{\frametitle{Obiettivi}



L'applicazione deve poter:
\begin{enumerate}
\item Eseguire Tracking basato su modelli tramite:
\begin{itemize}
 \item Kalman Filter
\item ConDensation
\end{itemize}

 \item  Possibilità di scelta del blob da tracciare in caso di \textbf{tracking multiplo}.
 \item  Tracciare a video l'andamento dei due algoritmi.
% \item  Visualizzare un' ellissi per ogni algoritmo che indichi la varianza del vettore di stato per quel tipo di tracking.
 \item Fornire un output dei risultati al fine di ottenere una \textbf{rappresentazione grafica} dell'accuratezza dei due metodi.
 \item Progettare e realizzare l'applicazione in maniera tale che possa essere compilata ed eseguita su \textbf{piattaforme diverse (Win32, Linux)}.
\end{enumerate}



}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\frame{\frametitle{Ambiente di lavoro}



\begin{block}{Condizione Ottimale}
\begin{itemize}
 \item La misura del centro del blob è ottenibile per ogni frame del video.
 \item Nella realtà questa condizione non è detto che sia verificata.
\end{itemize}
\end{block}

%\begin{center}
% \begin{Large}Video \end{Large}
%\end{center}
%\begin{center}
% use packages: array
%\begin{tabular}{|l|l|l|l|} \hline
% & \texttt{Movie12} & \texttt{TappetoNoMod} & \texttt{SingleCar} \\  \hline
%\texttt{Formato} & mjpeg/xvid & avi/xvid & avi/xvid \\ \hline
%\texttt{fps} & 25 & 10 & 30 \\ \hline
%\texttt{Durata} & 50.4 s & 60 s & 33 s \\ \hline
%\end{tabular}
%\end{center}
%\begin{block}{Requisiti}

\begin{large}Requisiti dei Video:\end{large}


\begin{enumerate}
	\item Telecamera di ripresa fissa
	\item Deve possedere un numero determinato di frames iniziali con esclusivamente il background della scena
	%\item Lo sfondo non vari drasticamente nella ripresa 
	
\end{enumerate}
%\end{block}



%\begin{description}
% \item[Object Tracking da camera fissa] \'E il nostro caso in cui si fa \textit{car tracking} da telecamera fissa
% \item[Object Tracking  da camera che zooma e ruota] \'E il caso del \textit{football player tracking}.
% \item[Active Tracking] \'E il caso del \textit{active face tracking}.
% \end{description}


}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Ground Truth}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\frame{\frametitle{Background Subtraction}

L'idea di base è conoscere il modello dello sfondo, segmentando ogni frame del video in una maschera di foreground e background.\\
%\begin{footnotesize}Una tecnica alternativa ma simile è il \textit{Motion Segmentation}.\end{footnotesize}

%Il modello MoG generalizzato viene di solito usato per modelli abbastanza complessi, non statici con molteplici background. Questo tipo di modellazione è di tipo statistico e online. L'idea è quella di modellare ogni pixel in un processo di funzioni gaussiane, successivamente eseguire l'apprendimento online e rilevare il foreground passo passo sulla base dell'intensità del valore di grigio di ogni pixel.
%Si eliman la gaussiana che ha minor peso e si aggiunge una nuova gaussiana con media uguale al valoredi quel pixel e varianza molto grande. Si aggiornano tutte le gaussiane e si normalizza...L’algoritmo di detection proposto è un algoritmo statistico, infatti, per la classificazione del pixel si considera la sua storia recente, rappresentata mediante un set di gaussiane: Mixture of Gaussians (MOG).
%La classificazione dei pixel viene effettuata stabilendo il matching di ogni pixel con le gaussiane ad esso associate: se non esiste matching il pixel viene classificato come foreground, se, invece, esiste matching, il peso della gaussiana corrispondente viene confrontato con un valore di soglia, se esso è minore di tale soglia il pixel viene ancora classificato come foreground, se è maggiore, viene considerato background.
%In particolare un pixel sarà classificato come un pixel di foreground se la distribuzione a lui associata ha peso sufficientemente basso e varianza alta, viceversa verrà classificato come background pixel.
%\item [Tecniche Non Parametriche] Si stima la funziona di densità di probabilità per ogni pixel preso dai tanti campioni, usando una tecnica di stima sulla densità di probabilità.
%\item [Approccio basato su regioni o frame] \'E una tecnica basata su pixel, che assume che le serie di temi dell'osservazione è indipendente per ogni pixel. L'approccio ad alto livello è eseguito segmentando un'immagine in una regione o ridefinendo un sottolivello di classificazione ottenuto su ogni pixel.




          %*   MoG (Mixture of Gaussian)
          %* Cenno agli altri tipi di segmentazione background

\begin{block}{Tipologie}
\begin{itemize}

\begin{footnotesize}
 \item Metodi di base
 \item Running average
 \item Distribuzione Unimodale - Running gaussian average
\end{footnotesize}
 \item Mixture of Gaussian
\end{itemize}

\end{block}
Possibili problematiche sono:
\begin{itemize}
 \item Presenza di illuminazione che genera ombre
 \item Oggetti in movimento che si inseriscono nella scena
 \item Oggetti rilevati come foreground che fermano il loro moto
\end{itemize}

}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\frame{\frametitle{Mixture of Gaussian (1)}


\begin{itemize}
\item Di tipo statistico e \textit{online}
\item Modella le informazioni di ogni pixel come processo di funzioni gaussiane
%\item Efficiente anche su video complessi
\item Permette il \textit{tuning} dei parametri come:
	\begin{itemize}
	\item Soglia di classificazione
	\item Numero di Gaussiane per pixel
	\end{itemize}

\end{itemize}

\alert{Algoritmo:}

1) Ogni pixel $x_t$ è rappresentato da un processo di K Gaussiane nella forma $P(\mu_k,\sigma_k,\omega_k)$:

\begin{equation*}
 x_t = \sum_{j=1}^k \alert{\omega}_{i,t} \cdot \frac{1}{\sqrt{2\pi \cdot \alert{\sigma}^2_{j,t}}} \cdot e^{-\frac{(x_t - \alert{\mu}_{j,t})^2}{2\alert{\sigma}_{j,t}^2}}
\end{equation*}





}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\frame{\frametitle{Mixture of Gaussian (2)}

\alert{Online learning}

2) Il processo è valutato sull'intensità dei valori di grigio dei pixel con:

\begin{equation*}
|x_t - \mu_{j,t}| > 2.5 \cdot \sigma_{j,t}~~~~~ per ~j=1..k
\end{equation*}
e i pesi $\omega_j$ vengono riaggiornati.

\alert{Rilevamento del foreground}

3) Si ordinano le k distribuzioni partendo da quelle con maggior peso e minor varianza (bg) fino a quelle con minor peso e maggior varianza (fg). Il parametro risulta: $r_{j,t} = \frac{\omega_{j,t}}{\delta_{j,t}}$

4) Le prime B distribuzioni ottenute dalla seguente formula sono associate al bg viceversa le altre:


\begin{equation*}
B = argmin_b{   \left(  \sum_{j=0}^{b-1} r_{j,t} > T \right)  }
\end{equation*}


}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\frame{\frametitle{Ground Truth}

La \alert{blob detection} è effettuata tramite la libreria OpenCV  \textit{libblob}.
%#  Ground Truth
%\begin{block}{Segmentazione Background}
%\begin{enumerate}
%item Effettuare una segmentazione del video tramite\textit{ Background Subtraction} di tipo MoG
%\item Da cui si ottiene una maschera binaria \textit{foreground/background}
%\end{enumerate}
%\end{block}


\begin{block}{Caratteristiche}
\begin{enumerate}
\item I blobs sono identificati attraverso il seguente metodo: %\texttt{CBlobResult getBlobs(IplImage* , IplImage* )}: %inserire i valori giusti -approfondire
\begin{itemize}
 \item sul foreground non viene applicata nessuna maschera per correggerlo
 \item con una soglia di differenza fg/bg di 10 sui valori di grigio
 %\item si filtrano i blob con area più piccola di 40 pixels
\end{itemize}

\item Si sceglie il blob a distanza euclidea minima tra tutte le distanza calcolate dal punto del click utente al centroide di ogni blob.
\end{enumerate}
 
\end{block}

   % * Ottenimento della misura/Segmentazione fg-bg
   %* Individuazione Blob di interesse (classificando la dimensione, distanza, confronto tra frames)
   % * In sintesti si parla di misura del moto e campionamento dei valori di esso


}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\subsection{Algoritmi}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\frame{\frametitle{Introduzione al Model-based Tracking}

La misura, ottenuta come dato campionato, rappresenta il centroide del blob nella forma:
\begin{equation}
\hat{x} = [x_c , y_c]
\end{equation}
%in maniera congrua con il vettore di stato del sistema.


Una volta campionato l'oggetto di interesse, le osservazioni sono inserite come input ad un algoritmo, che può essere:
\begin{enumerate}
\item Filtro di Kalman
			\begin{itemize}
                        \item Anni '50
			\item 	Per moti lineari e semplici
			\item oggetti puntiformi
                        \end{itemize}

\item ConDensation 
			\begin{itemize}
                        \item Anni '90
			\item Per moti non lineari
			\item Oggetti dalla forma complessa
                        \end{itemize}
\end{enumerate}

\begin{small}In caso di tracking multiplo in contemporanea è necessario un meccanismo di associazione dati tra blob.\end{small}


    %*   Dati Campionati
    %* Introduzione agli algoritmi di predizione fatti basati su modelli
    %* Cenni alle altre tipologie
    %* Come si predice il moto sulla base dei valori campionati


}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



